package org.protobuf.helper;

import java.io.IOException;

import org.avro.GenericMain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 使用protoc.exe编译成java类
 * 
 * 有两种方法： 
 * 1. 使用Java Rumtime执行cmd命令
 * 2. 直接打开cmd运行命令也行。
 * 命令格式如下：
 * protoc.exe -I=proto的输入目录 --java_out=java类输出目录 proto的输入目录包括包括proto文件
 * 实例:
 * protoc -I=. --java_out=.  ./person.proto
 * 
 * @author donald 2018年3月12日 上午9:09:09
 */
public class GenerateProtocol {
	private static final Logger log = LoggerFactory.getLogger(GenericMain.class);

	public static void main(String[] args) {
		String protoDir = "F:/gitee/serializable-demo/src/main/resources/protobuf";
		String protoFile = protoDir + "/person.proto";//
		String strCmd = "E:/Protobuf/protoc.exe -I=" + protoDir
				+ " --java_out=F:/gitee/serializable-demo/src/main/java/org/protobuf/entity " + protoFile;
		try {
			Runtime.getRuntime().exec(strCmd);
			log.info("命令：{}",strCmd);
			log.info("create entity end...");
		} catch (IOException e) {
			e.printStackTrace();
		} // 通过执行cmd命令调用protoc.exe程序
	}
}
